Computer systems and related technology affect many aspects of society. Indeed, the computer system's ability to process information has transformed the way we live and work. Computer systems now commonly perform a host of tasks (e.g., word processing, scheduling, accounting, etc.) that prior to the advent of the computer system were performed manually. More recently, computer systems have been coupled to one another and to other electronic devices to form both wired and wireless computer networks over which the computer systems and other electronic devices can transfer electronic data. Accordingly, the performance of many computer tasks is distributed across a number of different computer systems, a number of different computer environments, and/or a number of different computer services.
For example, a particular computer system or software program may rely on multiple external/third party services in order to provide the computer system's/software program's desired functionality. Oftentimes such external services each have very different application programming interfaces (API's). These different API's may result in differences in the protocols used to perform requests to each service, as well as differences in the type of data that is received in response to a request. As such, when a computer system depends on a number of external services, it is important to properly manage outgoing and incoming interactions with those services in a way that allows the computer system to fully utilize the data received from those external services. Furthermore, each request to an external service may have the potential to cause a failure or disrupt a request to a different external service.